package com.sf.rbac.mapper;


import com.sf.rbac.domain.Employee;
import com.sf.rbac.qo.QueryObject;
import com.sf.rbac.vo.AdminVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface EmployeeMapper {

    /**
     * 分页查询
     */
    List<Employee> selectForList(QueryObject queryObject);

    /**
     * 根据id 删除用户信息
     *
     * @param id
     * @return
     */
    int delete(Long id);

    /**
     * 删除用户和角色之间的关系
     *
     * @param id
     */
    void deleteEmpAndRoleRelation(Long id);

    /**
     * 根据id查询单条用户信息
     *
     * @param id
     * @return
     */
    Employee get(Long id);

    /**
     * 新增用户数据
     *
     * @param employee
     */
    void insert(Employee employee);

    /**
     * 新增用户和角色之间的信息
     *
     * @param id
     * @param roleId
     */
    void insertEmpAndRoleRelation(@Param("employeeId") Long id, @Param("roleId") Long roleId);

    /**
     * 更新用户信息
     *
     * @param employee
     */
    void update(Employee employee);

    /**
     * 更新管理员状态
     *
     * @param adminVo
     */
    void updateState(AdminVo adminVo);

    Employee login(@Param("username") String username, @Param("password") String password);
}
